package com.wjm.list;

import java.util.LinkedList;
import java.util.Queue;

/**
 * Data:2022年07月06日
 * Author:wjm
 * Content: Queue （队列） 和 LinkedList实现类
 *
 * 重点是要学List下的LinkedList实现类和ArrayList实现类
 *
 * LinkedList也是Queue接口的实现类
 *
 * 队列遵循先进先出（FIFO First Input First Output ）的原则
 *
 * Queue<E>接口中的方法
 *               抛出异常  返回特殊值
 *           插入 add(e) offer(e)
 *           移除 remove() poll()
 *           检查 element() peek()
 *
 *           移除方法是移除元素并返回被移除的那个值
 *           检查方法是检查首元素并返回被检查的值
 *
 *  LinkedList实现类
 *                 getFirst()方法 获取第一个元素
 *                 getFirst()方法 获取第一个元素
 *
 */
public class QueueDemo {
    public static void main(String[] args) {
        //创建队列对象
        Queue<String> queue = new LinkedList<>();
        //插入
        queue.add("a");
        queue.add("b");
        queue.add("c");
        queue.offer("d");
        queue.offer("e");
        System.out.println(queue);
        System.out.println("-------------------");

        //移除首元素
        String s = queue.remove();
        System.out.println(s);
        System.out.println(queue);
        System.out.println("-------------------");

        String s1 = queue.poll();
        System.out.println(s1);
        System.out.println(queue);
        System.out.println("-------------------");

        //检查首元素
        String s2 = queue.element();
        System.out.println(s2);
        System.out.println(queue);
        System.out.println("-------------------");

        String s3 = queue.peek();
        System.out.println(s3);
        System.out.println(queue);
        System.out.println("-------------------");
    }
}
